Skip to content

[Test] Add selector algorithm E2E coverage foundation - #3527

Open
LiXuanqi wants to merge 4 commits into
vllm-project:mainfrom
LiXuanqi:xuanqi/issue-3179-selector-coverage-foundation
Open

[Test] Add selector algorithm E2E coverage foundation#3527
LiXuanqi wants to merge 4 commits into
vllm-project:mainfrom
LiXuanqi:xuanqi/issue-3179-selector-coverage-foundation

Conversation

@LiXuanqi

@LiXuanqi LiXuanqi commented Sep 6, 2026

Copy link
Copy Markdown

Related #3179

Purpose

Establish the E2E coverage foundation for the selector algorithms tracked by #3179. The issue is accepted and owned by wg/evaluation-quality.

This PR:

  • Adds a coverage manifest for all 11 selector algorithms and verifies that it remains synchronized with the runtime DecisionAlgorithmCatalog.
  • Distinguishes planned, partial, and covered algorithms while ensuring implemented coverage is reachable through a registered E2E profile and testcase.
  • Adds the selector-algorithms E2E profile with isolated Gateway and mock-vLLM resources.
  • Covers the deterministic static selector as the first complete example, asserting its selected decision, algorithm, and model diagnostic headers.
  • Registers the profile in the PR test-selection mapping, including selector dispatch, eligibility, and diagnostic-header paths.
  • Keeps the existing core-selection-* cases registered until the remaining selector algorithms have replacement coverage.
  • Uses an atomic, model-free router configuration so the deterministic selector profile does not inherit unrelated chart or runtime model defaults.

This is a foundation PR and intentionally does not close #3179.

Test Plan

make agent-validate
make test-semantic-router
make build-e2e
make recipe-conformance-static
cd e2e && go test ./pkg/testcases ./profiles/all ./profiles/selector-algorithms
make agent-ci-gate CHANGED_FILES="e2e/profiles/selector-algorithms/values.yaml"
make e2e-test E2E_PROFILE=selector-algorithms

Test Result

Passed:

  • make agent-validate
  • make test-semantic-router
  • make build-e2e
  • make recipe-conformance-static
  • cd e2e && go test ./pkg/testcases ./profiles/all ./profiles/selector-algorithms
  • make agent-ci-gate CHANGED_FILES="e2e/profiles/selector-algorithms/values.yaml"
  • make e2e-test E2E_PROFILE=selector-algorithms using the CI-pinned Kind node image (kindest/node:v1.33.7): 1 test passed, 0 failed (selector-static).

Semantic Router PR Checklist
  • PR title begins with exactly one bracketed category, such as [Feature], [Bug], [Docs], [Test], [Research], [Community], or [CI/Build]
  • The title does not stack prefixes such as [Router][Docs]; affected modules belong in labels and the PR body
  • The PR links an accepted issue with exactly one owner: one wg/* label for project work or owner/maintainers for repository governance
  • Commits in this PR are signed off with git commit -s
  • The Purpose, Test Plan, and Test Result sections reflect the actual scope, commands, and blockers for this change

See CONTRIBUTING.md for the full contributor workflow and commit guidance.

Signed-off-by: LiXuanqi <lixuanqi1995@gmail.com>
@netlify

netlify Bot commented Sep 6, 2026

Copy link
Copy Markdown

Deploy Preview for vllm-semantic-router ready!

Name Link
🔨 Latest commit 9891344
🔍 Latest deploy log https://app.netlify.com/projects/vllm-semantic-router/deploys/6a9f604b4e420d00085f3c5f
😎 Deploy Preview https://deploy-preview-3527--vllm-semantic-router.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions Bot added pr/needs-author Waiting for author changes or response. wg/evaluation-quality Owned by the Evaluation and Quality Workgroup. labels Sep 6, 2026
Signed-off-by: LiXuanqi <lixuanqi1995@gmail.com>
@LiXuanqi

LiXuanqi commented Sep 6, 2026

Copy link
Copy Markdown
Author

@Xunzhuo This PR establishes the coverage framework for #3179 and implements static as the first example. If we aligns with the approach, I will implement the rest of selection algorithms in follow-up PRs.

@github-actions github-actions Bot added pr/blocked Blocked on a named decision, dependency, or required check. and removed pr/needs-author Waiting for author changes or response. labels Sep 6, 2026

@Xunzhuo Xunzhuo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for laying out the selector coverage matrix. One merge blocker remains: src/semantic-router/pkg/config/routing_surface_catalog_test.go reads e2e/pkg/testcases/testdata/selector_algorithm_coverage.json, so the production config package now depends upward on the E2E tree. The exact-head structure gate rejects this as prod-code-must-not-reference-e2e-docs-or-agent-tools, and that failure also blocks the PR gate. Please keep the manifest/catalog consistency check on the E2E side, or move the shared asset to an allowed package-owned location, then rerun the exact-head checks.

Query the public runtime catalog from the router module without making config tests read E2E assets. Run the registry and coverage contracts before E2E builds so CI continues to enforce the manifest.

Signed-off-by: LiXuanqi <lixuanqi1995@gmail.com>
Include the transitive test dependency checksums required by go mod tidy to unblock the dashboard CI check.

Signed-off-by: LiXuanqi <lixuanqi1995@gmail.com>
@github-actions github-actions Bot added pr/needs-author Waiting for author changes or response. and removed pr/blocked Blocked on a named decision, dependency, or required check. labels Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr/needs-author Waiting for author changes or response. wg/evaluation-quality Owned by the Evaluation and Quality Workgroup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Test] Cover supported selector algorithms end to end and retire stale cases

2 participants